1. Field of Invention
The present disclosure relates generally to multitasking multiprocessor environments, and in particular, to passing initiative in such fully dynamic environments without lock overhead.
2. Description of Background
InfiniBand® Architecture (IBA) is an industry standard architecture for connecting complex systems. Particularly, InfiniBand® (IB), which is a form of System Area Network (SAN), defines a multicast facility that allows a Channel Adapter (CA) to send a packet to a single address and have it delivered to multiple ports. The InfiniBand® Architecture is described in the InfiniBand® standard, which is available at http://www.infinibandta.org, and also hereby incorporated in its entirety by reference.
In a multitasking multiprocessor environment, such as an environment equipped with IBA, there is a need to pass initiative from multiple processors to multiple targets very quickly and efficiently. Using IBA, multiple processing units receive requests across a communications link, and for certain commands or situations, they need to pass those commands to one of several dedicated IO Processors for handling.
Conventionally, this task has been handled by specialized hardware. However, in the case of IBA, there is no such hardware available to address this concern. Proposed solutions to this problem have involved either locking or queues. Each of those approaches carries a performance or complexity penalty. Obtaining locks in a busy system often requires waiting for other tasks to release those locks. This wait time often ties up the processor attempting to obtain the lock, and delays the passing of the lock. Queues often involve some of the same issues as locks in order to guarantee the integrity of the queue.
Furthermore, the dynamic removal of a target IO processor creates a significant problem for the handling of the items previously queued to that processor. In addition, these solutions do not always scale well as the system grows.